package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import vista.VentanaIncluirGrupo;

import modelo.Colaborador;
import modelo.GrupoColaborativo;
import modelo.Laboratorio;

public class ControladorIncluirGrupo implements ActionListener{
	
	private VentanaIncluirGrupo vg;
	private Laboratorio lab;
	private GrupoColaborativo gc;
	
	public ControladorIncluirGrupo(Laboratorio lab, GrupoColaborativo gc) {

		this.lab = lab;
		this.gc = gc;
		vg = VentanaIncluirGrupo.getInstancia();
		vg.setVisible(true);
		//vg.setLocationRelativeTo(null);
		vg.setResizable(false);
		vg.agregarListener(this);
		vg.bloquearCampo();
		vg.setTxtCodigoGrupo(generarCodigo());
		cargarGrupos();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getActionCommand().equalsIgnoreCase("Salir")){
			vg.dispose();
			}
		
		else if (e.getActionCommand().equalsIgnoreCase("Guardar")){
			
			if (vg.getTxtNombreGrupo().equalsIgnoreCase("")|| vg.getTxtcedResponsable().equalsIgnoreCase("")){
				vg.mostrarMensaje("ERROR, No dejar campos vacios");
				return;
			}
		}
		else if (e.getActionCommand().equalsIgnoreCase("Aceptar")){
			modificarGrupo();
		}
	}
	
	// GENERAR CODIGO
	public String generarCodigo(){
		String cod;
		int a = lab.contarGrupo()+1;
		if(a < 9) {
			cod = "GP-0"+a;
			return cod;
		}
		cod = "GP-"+a;
		return cod;
	}

	
	//METODO BLOQUEO BOTON GUARDAR
	public void bloquearGuardar(boolean valor){
		vg.bloquearBontonGuardar(valor);
	}
	
	//METODO BLOQUEO BOTON ACEPTAR
	public void bloquearAceptar(boolean valor){
		vg.bloquearBontonGuardar(valor);
	}
	
	//METODO BLOQUEO TXT NOMBRE
	public void bloquearNombre(boolean valor){
		vg.bloquearNombre(valor);
	}
	//METODO PARA BLOQUEAR EL TXT CEDRESPONSABLE
	public void bloquearCedResponsable(boolean valor){
		vg.bloquearCedResponsable(valor);
	}
	

	//METODO PARA CARGAR LISTADO DE GRUPOS EXISTENTES
	public void cargarGrupos(){
		ArrayList<GrupoColaborativo> grupos = lab.getGrupos();
		for (int i = 0; i< lab.contarGrupo(); i++){
			GrupoColaborativo g = grupos.get(i);
			if (g.getStatus() == "E"){
				continue;
			}
			Vector<String> aux = new Vector<String>(2,1);
			String codigo = g.getCodigoGrupo();
			String nombre = g.getNombreGrupo();
			aux.add(codigo);
			aux.add(nombre);
			vg.cargarListado(aux);
			}
		}

	
	//METODO ACEPTAR CAMBIOS
	public void modificarGrupo()
	{
		GrupoColaborativo g = new GrupoColaborativo();
		{
			g.setCodigoGrupo(vg.getTxtCodigoGrupo());
			g.setNombreGrupo(vg.getTxtNombreGrupo());
			g.setColResponsable(vg.getTxtcedResponsable());
			g.setStatus("A");
		}
		lab.modificarGrupo(g);
		vg.mostrarMensaje("Los Datos del Grupo Han Sido Actualizados");
	}
}
